我有两个解决方案,它们之间有一些公共代码,所以我想将其提取出来并在它们之间共享。此外,我想要能够独立发布这个库,因为它可能对其他人有用。
- 在Visual Studio 2008中,最佳的做法是什么?
- 一个项目可以存在于多个解决方案中吗?
- 是否需要为不同的代码片段创建单独的解决方案?
- 一个解决方案是否可以依赖于另一个解决方案?
Note: 格式已被保留,但由于HTML标签不可见,因此未翻译。
我有两个解决方案,它们之间有一些公共代码,所以我想将其提取出来并在它们之间共享。此外,我想要能够独立发布这个库,因为它可能对其他人有用。
添加
-> 现有项
,然后单击添加
按钮旁边的向下箭头:
一个项目可以被多个解决方案引用。
将你的库或核心代码放入一个项目中,然后在两个解决方案中引用该项目。
文件 > 添加 > 现有项目...
可以让您将项目添加到当前解决方案中。我之所以要提及这一点,是因为以上帖子中没有指出这一点。这使您可以在多个解决方案中包含同一项目。
您可以使用以下技术进行内联通配符(这是@Andomar解决方案在.csproj中保存的方式):
<Compile Include="..\MySisterProject\**\*.cs">
<Link>_Inlined\MySisterProject\%(RecursiveDir)%(Filename)%(Extension)</Link>
</Compile>
输入:
<Visible>false</Visible>
如果你想隐藏文件和/或防止通配符包含在像上面的“虚拟现有项目”文件夹中添加或删除项目时被扩展,例如MySisterProject
。
<Import
到.csproj文件中的文件会被缓存,直到您重新加载解决方案,就像您所说的那样。 - Ruben Bartelink您可以将一个项目包含在多个解决方案中。我认为一个项目并没有属于哪个解决方案的概念。不过,另一种选择是将第一个解决方案构建到某个已知位置,并引用已编译的二进制文件。这种方法的缺点是,如果您想要根据是否在发布或调试配置中进行构建来引用不同版本,则需要做一些工作。
我不认为您可以使一个解决方案依赖于另一个解决方案,但是您可以通过自定义脚本以适当的顺序执行自动化构建。基本上将常见库视为像 NUnit 等其他第三方依赖项一样处理。
您只需要创建一个独立的类库项目来包含共享代码,它不需要成为使用它的任何解决方案的一部分。从需要使用共享代码的任何项目中引用该类库。
唯一需要注意的问题是,您需要使用文件引用来引用该项目,因为它不会成为引用它的解决方案的一部分。这意味着实际的输出程序集必须放置在任何构建引用它的项目的人都可以访问的位置上。例如,可以将程序集放置在共享目录中。
将通用代码提取到一个类库项目中,并将该类库项目添加到您的解决方案中。然后,您可以通过向该类库添加项目引用来从其他项目中添加对通用代码的引用。与二进制/程序集引用相比,具有项目引用的优势是,如果您更改构建配置为调试、发布、自定义等,则通用类库项目也会根据该配置进行构建。
svn:externals
是指向另一个仓库的硬链接。当你移动仓库时,这些外部链接仍然指向旧的仓库。 - Andomar查看更多信息,请访问this
涉及到的两个主要步骤如下:
1- 创建一个C++动态链接库(dll)
在Visual Studio中:
New->Project->Class Library in c++ template. Name of project here is first_dll in
visual studio 2010. Now declare your function as public in first_dll.h file and
write the code in first_dll.cpp file as shown below.
头文件代码
// first_dll.h
using namespace System;
namespace first_dll
{
public ref class Class1
{
public:
static double sum(int ,int );
// TODO: Add your methods for this class here.
};
}
Cpp文件
//first_dll.cpp
#include "stdafx.h"
#include "first_dll.h"
namespace first_dll
{
double Class1:: sum(int x,int y)
{
return x+y;
}
}
检查这个
**Project-> Properties -> Configuration/General -> Configuration Type**
这个选项应该选择动态链接库(.dll),然后现在构建解决方案/项目。
first_dll.dll文件已经被创建在Debug文件夹中。
2- 在C#项目中链接它
打开C#项目
Rightclick on project name in solution explorer -> Add -> References -> Browse to path
where first_dll.dll is created and add the file.
Using first_dll;
现在可以使用下面的语句在某个函数中访问来自DLL的函数
double var = Class1.sum(4,5);
我在VS2010中创建了一个C++项目的dll,并在VS2013 C#项目中使用它。它运行良好。