Le forçage peut être nécessaire si des fichiers doivent être dupliqués à chaque exécution du débogage (mise en place d'un copy
dans le pre-build
) afin d'être à jour, indépendamment d'une éventuelle modification des sources du programme.
Remplissez correctement la rubrique pre-build
et post-build
puis fermez le projet. Editez le fichier .csproj
, allez dans la rubrique PropertyGroup
qui contient PreBuildEvent
et ajoutez :
<PropertyGroup> <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> <PreBuildEvent>
Solution : msbuild - Visual Studio add pre-build event that always runs (C# project) - Stack Overflow Archive du 07/03/2015 le 27/04/2020.
Doc Visual Studio correspondante : Common MSBuild Project Properties Archive du 11/15/2016 le 27/04/2020.
Installez le paquet NuGet ILMerge
.
Editez manuellement le fichier .csproj
et ajoutez tout en bas (juste avant le </Project>
final) :
<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release' "> <CreateItem Condition="'%(Extension)'=='.dll'" Include="@(ReferenceCopyLocalPaths)"> <Output TaskParameter="Include" ItemName="IlmergeAssemblies" /> </CreateItem> <Exec Command=""$(SolutionDir)packages\ILMerge.2.14.1208\tools\Ilmerge.exe" /targetplatform:"v4,C:\Windows\Microsoft.NET\Framework\v4.0.30319" /ndebug /out:@(MainAssembly) "@(IntermediateAssembly)" @(IlmergeAssemblies->'"%(FullPath)"', ' ')" /> <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" /> </Target>
<ItemGroup Condition="'$(Configuration)' == 'Debug'"> <Reference Include="MyLib"> <HintPath>..\..\Debug\MyLib.dll</HintPath> </Reference> </ItemGroup> <ItemGroup Condition="'$(Configuration)' == 'Release'"> <Reference Include="MyLib"> <HintPath>..\..\Release\MyLib.dll</HintPath> </Reference> </ItemGroup>
c# - Visual Studio 2010 Compiling with the Debug or Release version of third party library depending on if my project is being compiled Build or Release_ - Stack Overflow Archive du 30/03/2011 le 27/04/2020
Cela peut se produit quand un projet C# dépend d'un projet C++/Cli qui dépend d'un projet C++. Dans ce cas, Visual Studio ne va pas copier la dll C++.
Il faut ajouter la dll au projet et cocher Copier dans le dossier Output
. Si on veut utiliser une dll différente entre la version Debug et la version Release, on combine avec la rubrique Utiliser une dll différente en Debug et en Release
.
Mettre avant <\Project>
<ItemGroup Condition="'$(Configuration)' == 'Debug'"> <Content Include="..\x64\Debug\PclTraitement.dll"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <Content Include="..\x64\Debug\PclTraitement.pdb"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> </ItemGroup> <ItemGroup Condition="'$(Configuration)' == 'Release'"> <Content Include="..\x64\Release\PclTraitement.dll"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <Content Include="..\x64\Release\PclTraitement.pdb"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> </ItemGroup>
c++\cli project dependent c++ dll not copied to c# output directory Archive du 24/02/2015 le 27/04/2020
Il peut s'agir d'une mauvaise configuration et que la solution Debug
soit configurée en Release
.
_net - VS2015 Project no longer runs in debug mode - Stack Overflow Archive du 13/08/2015 le 27/04/2020
Si Visual Studio est 32 bit, vérifier que la configuration en cours (Debug généralement) est bien configuré pour compiler le projet C# soit en 32 bit (x86), soit en Any CPU et pas uniquement en 64 bit (x64).
Could not find type 'xxx.xxx.xxx'. Please make sure that the assembly Archive du 25/09/2013 le 27/04/2020
VS 2010 designer error 'Could not find type XYZ' in Windows7. Works fine in XP Archive du 14/10/2012 le 27/04/2020