如何使ASP.NET网站使用正确的程序集(文件引用而不是path/GAC)
我最近开始使用Jenkins来简化应用程序开发。我有一个Asp.net网站,我正试图使用它进行部署 有关生成的详细信息:如何使ASP.NET网站使用正确的程序集(文件引用而不是path/GAC),.net,msbuild,reference,jenkins,.net,Msbuild,Reference,Jenkins,我最近开始使用Jenkins来简化应用程序开发。我有一个Asp.net网站,我正试图使用它进行部署 有关生成的详细信息: 该项目使用Jenkins从Visual Source Safe中检索 然后使用msbuild编译 构建完成后,将其部署到测试服务器 编译运行正常,没有错误,没有警告 当我将web应用程序从预编译web文件夹复制到测试服务器时,当我执行某些操作时,应用程序崩溃。我得到的例外情况如下: 但是,如果我从网站的文件夹中复制web应用程序,则一切正常 注意:所有非Microsoft
- 该项目使用Jenkins从Visual Source Safe中检索
- 然后使用msbuild编译
- 构建完成后,将其部署到测试服务器
似乎是网站项目引起了麻烦(当我将其从解决方案中删除时,只有正确的程序集显示在对象浏览器中) 在Visual Studio项目中,当您在引用中选择该DLL并查看其属性时,“复制本地”是否设置为true?如果没有,则可能无法将DLL复制到输出文件夹。在Visual Studio项目中,当您在引用中选择该DLL并查看其属性时,“复制本地”是否设置为true?如果没有,DLL可能无法复制到输出文件夹。以XML格式打开项目文件,并查找相关引用。更改它,使其不具有强程序集名称,例如
<Reference Include="Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken={SOME-KEY}, processorArchitecture=MSIL" />
…指向一个具有非限定名称和指向代码库中已检入程序集的位置的HintPath的
<Reference Include="Oracle.DataAccess">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Oracle\Oracle.DataAccess.dll</HintPath>
</Reference>
假的
..\Oracle\Oracle.DataAccess.dll
(当然,我只是在编造这些细节,没有Oracle)
请注意,当前引用是否已正确设置HintPath并不重要,如果它具有强程序集名称,则GAC中的任何内容都将具有优先权。以XML形式打开项目文件,并查找有问题的引用。更改它,使其不具有强程序集名称,例如
<Reference Include="Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken={SOME-KEY}, processorArchitecture=MSIL" />
…指向一个具有非限定名称和指向代码库中已检入程序集的位置的HintPath的
<Reference Include="Oracle.DataAccess">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Oracle\Oracle.DataAccess.dll</HintPath>
</Reference>
假的
..\Oracle\Oracle.DataAccess.dll
(当然,我只是在编造这些细节,没有Oracle)
请注意,如果您当前的referec似乎已经正确设置了HintPath,这并不重要,如果它具有强程序集名称,那么GAC中的任何内容都将具有优先权。这是一个网站项目,因此我不能选择在引用上复制本地。事实上,添加对网站的引用只会将其复制到bin中。当我在属性页中查看项目时,没有添加引用(我猜可能是它试图使用GAC),这是一个网站项目,因此我不能选择在引用上复制本地。事实上,添加对网站的引用只会将其复制到bin中。当我在属性页中查看该项目时,没有在那里添加引用(我的猜测是它可能试图使用GAC)。。。我不能在网站上这么做,你没有一个项目文件可以打开。。。我不能在网站上这样做,你没有一个项目文件可以作为XML打开