1.问题:
项目引用MySQL Connector注册在.net Framework中dll进行数据连接(MySQL.Data.DLL)。因此在生成及发布时未将DLL拷贝
至发布文件夹,导致每次发布需要手动复制DLL至发布文件夹bin目录。
2.解决方案
- a. 卸载网站项目.csproj, 右键单击编辑csproj
- b. 在.csproj末尾
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
节点后添加PropertyGroup节点
<PropertyGroup> <CopyAllFilesToSingleFolderForPackageDependsOn> CustomCollectFiles; $(CopyAllFilesToSingleFolderForPackageDependsOn); </CopyAllFilesToSingleFolderForPackageDependsOn> </PropertyGroup>
以及Target节点
<Target Name="CustomCollectFiles"> <ItemGroup> <_CustomFiles Include="..\Extra Files\**\*" /> <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)"> <DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath> </FilesForPackagingFromProject> </ItemGroup> </Target>
- c. 重新加载项目并在项目文件夹上一级建立"Extra Files"文件夹,将所需拷贝至bin目录dll放入其中
图1. Extra Files文件路径示意
图2. Extra Files中包含所需发布dll
- d. 点击发布之后,即将MySql.Data.dll拷贝至发布文件夹bin目录
图3. 发布后效果
3. 参考文献