Visual Studio 2013 C#:一种解决方案使用另一种解决方案的代码

时间:2015-01-27 13:14:07

标签: c# asp.net eclipse visual-studio-2013 master-pages

我有Java背景,我正在尝试从C#开始。

我想在C#中创建一个将在其他解决方案中使用的库。在Eclipse中,只需创建一个jar并将其添加到classpath即可。我知道VS2013中的每个项目都变成了一个dll,但我怎样才能找到解决方案呢?

此外,在Eclipse中,我们可以创建Web Fragment Project。它可以有Servlets,jsp和静态js和css文件,它变成一个war文件,可以导入到另一个项目中,并在该项目中使用它的文件。

我怎样才能在VS2013中做到这一点?我想创建一个包含静态文件,母版页,一些aspx东西,C#dll的解决方案,然后在其他解决方案中使用它们。

是否有任何教程(我用谷歌搜索但没有找到)教导如何做到这一点?

3 个答案:

答案 0 :(得分:4)

根据您的偏好和范围,您有几个选择

选项1 - 类库

您可以创建可在您的网站项目中引用的类库。类库是类,接口和值类型的库

您可以将现有/新类库项目添加到您的网站解决方案并直接引用

  1. 您可以通过右键单击
    将项目添加到解决方案中 解决方案(在VS内) - >添加 - >现有项目 - >并导航到说 project的.csproj文件
  2. 您可以使用新的/现有的类库项目 - 在您的网站解决方案中构建它并引用内置的dll。

    1. 您可以右键单击您的网站解决方案(在VS内) - >添加 - >新项目 - >选择类库
    2. 完成上述任何一项后 - >

      1. 右键单击项目,您要添加对
      2. 的引用
      3. 点击“添加参考”
      4. 导航到相关的.dll。
      5. 如果您要引用的dll是当前解决方案的一部分(如步骤1中所示) - >按下“添加引用”后 - 按“解决方案”选项卡,它应显示

        enter image description here

        enter image description here 添加完dll之后。 请记住使用

        在代码文件中引用它
        Using TheReferenceNamespace;
        

        这将允许你调用你内部的函数,如下所示

        FunctionInsideDll(param);
        

        或者您可以完全限定您的通话,例如以下

        TheReferenceNamespace.FunctionInsideDll(param); 
        

        选项2 - 分享MasterPages

        如果你只想要“可分享的”主页 您可以执行以下操作 - (取自此 - > MSDN文章) (供将来参考 - web archive link - 以防万一被移动)


        预编译母版页中使用的代码

        如果您担心重新使用页面的其他人可以看到母版页中的代码,则可以将母版页的代码预编译到库中。在此库中,您可以包含代码隐藏页面以及用户或自定义控件。编译母版页不会删除主文件或所使用的任何服务器控件的声明性代码,但您可以编译主文件以删除母版页使用的控件或代码隐藏页面的代码。

        如果选择将母版页编译到库中,则必须使用“可更新”构建选项,以便稍后修改标记。此选项由“发布网站”对话框中的“允许预编译站点可更新”复选框确定。有关将页面预编译到可以重用的库中的更多信息,请参阅使用VS 2005构建可重用的ASP.NET用户控件和页库。


        选项3 - 模板

        创建模板,并将该模板用于不同的项目 在Visual Studio中 - 按“文件” - >导出模板 - >按照向导。 导出它之后并导入它(通过向导中的复选标记或双击vsix文件) - 在创建新项目时,它将显示在项目模板下。 enter image description here enter image description here

答案 1 :(得分:1)

您可以在解决方案B中包含解决方案A中的项目,方法是右键单击解决方案B并选择"添加现有项目"

答案 2 :(得分:0)

不要害怕编辑XML .cs​​proj文件。例如,这有效......

<Compile Include="$(Codez)\z.Libraries\diff-match-patch\DiffMatchPatch\**\*.cs"
Exclude="NotThisOne.cs;**\NotThisFolderWith\This*.cs">
<Link>Libs\%(RecursiveDir)%(Filename)%(Extension)</Link>
</Compile>

...并且会将源文件夹和子文件夹中的所有C#文件作为目标项目中名为\Libs\的文件夹中的链接文件提供给您。

  • $(Codez)是我在PC上使用的Windows环境变量。
  • 我也可以在结尾使用*.*而不是*.cs
  • 这是Visual Studio可能会破坏您的一件事,将文件添加到充满通配符链接文件的文件夹中可能会将其分解为单独的条目。或不。取决于风。