FR: project includes
Uniwares_AS
Posts: 168
Feature Request: include for project settings
Having about 30 SA project files to maintain for a single solution (and there are much larger ones out there) its a real pain to either hand edit each one or even worse, modify it with the GUI app.
How nice would it be to be able to do something like
I understand that this cant be managed by the GUI app anymore (at least not with acceptable effort) but who uses MSBuild doesn't care much about this anyway.
Same could be applied to the <Options> section, settings like <Company>, etc.
Would make life for larger solutions a lot easier.
Having about 30 SA project files to maintain for a single solution (and there are much larger ones out there) its a real pain to either hand edit each one or even worse, modify it with the GUI app.
How nice would it be to be able to do something like
<Include File="solutionwideassemblies.{sa}inc" />where the .{sa}inc file contains my list of assemblies references and settings used in all my SA projects for this solution.
I understand that this cant be managed by the GUI app anymore (at least not with acceptable effort) but who uses MSBuild doesn't care much about this anyway.
Same could be applied to the <Options> section, settings like <Company>, etc.
Would make life for larger solutions a lot easier.
Comments
ERROR: Some options are not set or are not valid.
Please review all the settings and try again.
The options themselves cant be wrong since they are copied from a 100% working project file. The GUI app asks for an input and output file and builds fine. No errors.
What did I do? Added all the assemblies of all libraries (around 30) which I am going to protect to the project file and call the commandline app with the -input parameter which is one of the assemblies in the project.
My guess is either the second or the last are the problem.
Yes it would be better if SA actually told you what part of the configuration it was having problems with.
The SmartAssembly.MSBuild.Task is configured to log errors and the errors from the actual build process will be sent to the log, although you may need to set the verbosity level to normal or detailed.
My guess if it works fine with the standalone command line, then it is a permissions or relative path issue.
I can try MSBuild but I recently had problems with the configuration of the msbuild process so this may take some time to setup right.
Under the "Projects and Solutions" section choose "Build and Run". You can then set the "MSBuild project build output verbosity" to one of the high settings.
There is a registry setting to do the same (e.g. if you can't run the IDE) HKCU\Software\Microsoft\VisualStudio\9.0\General
DWORD key "MSBuildLoggerVerbosity" with data "4" (diagnostic) or "3" (detailed), but usual warnings about editing your registry.
If you are building using the IDE version you will get all the detail straight-away. If you are using the command line version you should add the switch
/out <log file name>
to view the information (N.B. this is an append only log and with diagnostic will get quite big very quickly so turn off logging and reduce the verbosity as soon as you sort out the problem).
Anyway, solved the problem now, it was really a wrong path to the input assembly (should have been $(ProjectDir)\obj\Release and not $(TargetDir)), SA threw an IOException.
So this makes this workaround somehow usable. Although a <Include> would be much cleaner and logical.
If someone else is interested, this is what the SA output looks like:
Glad you managed to find the problem.
I'll log a feature request for the <Include ...> structure
When set to minimal, this is the only output during build time.